package com.example.interpret;

import com.example.interpret.Impi.AddExpressionImpi;
import com.example.interpret.Impi.MultiplyExpressionImpi;
import com.example.interpret.Impi.NumberExpressionImpi;

/**
 * 解释器模式，用对象的形式来表示规则，支持嵌套和组合
 */
public class Test {
    public static void main(String[] args) {
        NumberExpressionImpi impi1 = new NumberExpressionImpi(3);
        NumberExpressionImpi impi2 = new NumberExpressionImpi(5);

        AddExpressionImpi addExpressionImpi = new AddExpressionImpi(impi1, impi2);
        System.out.println(addExpressionImpi.interpret());

        System.out.println(new MultiplyExpressionImpi(addExpressionImpi, impi2).interpret());
    }
}
